package io.renren.membermanage.dto;

import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

@Data
public class ModelTrainParamDto implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    private String model_train_type;

    //该值前端传入
    private String pretrained_model_name_or_path;

    private boolean v2;

    //该值自行获取
    private String train_data_dir;

    private double prior_loss_weight;

    private String resolution;

    private boolean enable_bucket;

    private int min_bucket_reso;

    private int max_bucket_reso;

    private int bucket_reso_steps;

    //该值前端传入
    private String output_name;

    private String output_dir;

    private String save_model_as;

    private String save_precision;

    private int save_every_n_epochs;

    //该值前端传入
    private int max_train_epochs;

    //该值前端传入
    private int train_batch_size;

    private boolean gradient_checkpointing;

    private boolean network_train_unet_only;

    private boolean network_train_text_encoder_only;

    private double learning_rate;

    private double unet_lr;

    private double text_encoder_lr;

    private String lr_scheduler;

    private int lr_warmup_steps;

    private int lr_scheduler_num_cycles;

    private String optimizer_type;

    private String network_module;

    private int network_dim;

    private int network_alpha;

    //该值前端传入
    private String sample_prompts;

    private String sample_sampler;

    private int sample_every_n_epochs;

    private String log_with;

    private String logging_dir;

    private String caption_extension;

    private boolean shuffle_caption;

    private int keep_tokens;

    private int max_token_length;

    private int seed;

    private int clip_skip;

    private String mixed_precision;

    private boolean xformers;

    private boolean lowram;

    private boolean cache_latents;

    private boolean cache_latents_to_disk;

    private boolean persistent_data_loader_workers;
}
